import { logUnderline, logTitle, logSubTitle, log } from "../utils/index";

function use() {
    logTitle("九、声明合并");
    logSubTitle("1、接口的合并");
    interface IAnimal {
        name: string;
        age: number;
        // play():void;
        play(x: string, y: number): void;
    }
    interface IAnimal {
        legNum: number;
        age: number;
        play(x: number): number;
    }
    // 属性必须是唯一、或同类型的； 函数会执行重载，后面的优先级更高，其中，特殊字面量会合并到最顶端
    let fish: IAnimal = {
        name: "fish",
        age: 1,
        legNum: 0,
        play(x: any): any {
            // ...
        },
    };

    logSubTitle("2、命名空间的合并");
    // 只合并导出的，不导出则不可见
    // 接口、属性合并
    // 不能让类和类合并，这是非法的。需要使用mixin方法

    logUnderline();
}

export default { use };
